package com.ruoyi.project.system.mapper;

import com.ruoyi.project.system.domain.Student;
import com.ruoyi.project.system.domain.SysUser;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.security.core.parameters.P;

import javax.swing.*;
import java.util.List;

/**
 * 学生Mapper接口
 * 
 * @author ruoyi
 * @date 2020-10-07
 */
@Mapper
public interface StudentMapper 
{
    /**
     * 查询学生
     * 
     * @param id 学生ID
     * @return 学生
     */
    public Student selectStudentById(Integer id);

    /**
     * 查询学生列表
     * 
     * @param student 学生
     * @return 学生集合
     */
    public List<Student> selectStudentList(Student student);

    /**
     * 新增学生
     * 
     * @param student 学生
     * @return 结果
     */
    public int insertStudent(Student student);

    /**
     * 修改学生
     * 
     * @param student 学生
     * @return 结果
     */
    public int updateStudent(Student student);

    /**
     * 删除学生
     * 
     * @param id 学生ID
     * @return 结果
     */
    public int deleteStudentById(Integer id);

    /**
     * 批量删除学生
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteStudentByIds(Integer[] ids);


    /**
     * 根据id身份证号码查询是否有此学生
     * @param idcardCode
     * @return
     */
    List<Student> selectStudentByUserIdcard(String idcardCode);


    /**
     * 根据会员id查询
     * @param member_id
     * @return
     */
    Student selectStudentByMemberId(int member_id);


    SysUser getUserByIdCardName(String idCard,String name);

    @Update("update student set member_id = #{memberId} where idcard_code = #{idCard}")
    Integer updateMemberIdByIdCard(String idCard, int memberId);

    Student getStudentByUserId(Long userId);

    @Select("select count(*) from student")
    int getStudentList();

    @Select("select count(*) from college")
    int getSchoolList();

    /**
     * 学生登录查询
     * @param student
     * @return
     */
    List<Student> selectStudentListUser(Student student);


    @Select("select count(*) from student where college_id=#{deptId}")
    int getStudentListCollegeId(@Param("deptId") Long deptId);

}
